home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / coding / dsp / c5xug.exe / DPROG.ASM < prev    next >
Encoding:
Assembly Source File  |  1991-06-04  |  1.8 KB  |  52 lines

  1. ;**************************************************************
  2. ;  
  3. ;                 dprog.asm
  4. ;  
  5. ;                 staff
  6. ;  
  7. ;                 06-04-91
  8. ;  
  9. ;           (C) Texas Instruments Inc., 1992 
  10. ;  
  11. ;           Refer to the file 'license.txt' included with this 
  12. ;           this package for usage and license information. 
  13. ;  
  14. ;**************************************************************
  15. Example  7-xx.   Backtracking   Algorithm   Using   Circular
  16. Addressing
  17.  
  18. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  19. ; Backtracking Example
  20. ; This program back-tracks the optimal path expanded by
  21. ; a dynamic programming algorithm. The path history
  22. ; consists of four paths expanded N times. It is set up
  23. ; as a circular buffer of length N*4.
  24. ; Note that decrement type circular buffer is used.
  25. ; The start and end address of the circular buffer are
  26. ; initialized this way because of two reasons:
  27. ; 1- to avoid skipping the end-address of circ buffer
  28. ; 2- to ensure that wrap-around is complete before next
  29. ; iteration.
  30. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31.  
  32.     LAR    AR0,#BUFFER ; get buffer address
  33.     LMMR   INDX,PATH   ; get the selected path [0..3]
  34.     SPLK   #N-1,BRCR   ; trace back N time periods
  35. * init. AR0 as pointer to circular buffer#1; length=N*4
  36. words
  37.     SPLK   #BUFFER+(N-1)*4,CBSR1
  38.     SPLK   #BUFFER-3,CBER1
  39.     SPLK   #08h,CBCR
  40. *
  41.     RPTB   TLOOP-1     ; for i=0,i<N,i++
  42.     MAR    *0+         ; offset by state#
  43.     LACC   *0-         ; get next pointer & reset to state#0
  44.     SAMM   INDX        ; save next state#
  45.     SBRK   3           ; decrement AR0 to avoid skipping
  46. CBER1
  47.     SBRK   1           ; now AR0 is correctly positioned 1
  48. time
  49. TLOOP:                 ; period back (circular addressing)
  50.  
  51.  
  52.